class Settings:
    """定义所有外星人入侵游戏的所有属性设置"""
    def __init__(self):
        self.screen_width = 600  # 屏幕的宽度
        self.screen_height = 500  # 屏幕的高度
        self.screen_bg_color = (230, 230, 230)  # 屏幕的背景颜色
        self.ship_limit = 3  # 飞船的数量限制

        # 设置子弹的控制属性
        self.bullet_width = 3  # 子弹外接矩形的宽度
        self.bullet_height = 15  # 子弹的外接矩形的高度
        self.bullet_color = 60, 60, 60  # 子弹的颜色
        self.bullets_allowed = 3  # 在屏幕上同时显示的子弹的数量

        # 设置外星人的控制属性
        self.fleet_drop_speed = 100  # 外星人向下移动的速度
        self.fleet_direction = 1  # 外星人的移动方向控制，1标识当前外星人向右移动，-1标识向左移动

        # 设置外星人以什么样的倍率递增移动的速度
        self.speed_scale_number = 1.1

        # 随着难度的增加响应外星人的分数也要递增
        self.alien_scale_point = 1.5

        self.init_dynamic_settings()

    def init_dynamic_settings(self):
        """游戏运行速度的静态处理"""
        self.ship_speed_factor = 1.5  # 飞船图像每次移动的像素值
        self.bullet_speed_factor = 0.5  # 子弹的移动速度
        self.alien_speed_factor = 0.5  # 外星人的移动速度
        self.alien_point = 50

    def increase_speed(self):
        """游戏运行速度的动态递增"""
        self.ship_speed_factor *= self.speed_scale_number
        self.bullet_speed_factor *= self.speed_scale_number
        self.alien_speed_factor *= self.speed_scale_number
        self.alien_point = int(self.alien_point*self.alien_scale_point)
